﻿using AccesoDatos.Implementacion;
using AccesoDatos.Interfaces;

namespace AccesoDatos
{
    public abstract class Dao
    {
        /// <summary>
        /// Metodo que retorna la instancia del dao que se requiere
        /// </summary>
        /// <param name="opcion">
        ///  1 para xmls 
        ///  2 para SqlServer</param>
        /// <returns></returns>
        public static Dao ObtenerDao(int opcion)
        {
            switch (opcion)
            {
                case 1: return new DaoXml();
                case 2: break;
            }
            return null;
        }

        /// <summary>
        /// Metodo que obtiene todos los metodos DAO para los bebe
        /// </summary>
        /// <returns></returns>
        public abstract IDaoBebe ObtenerDaoBebe();

        /// <summary>
        /// Metodo que obtiene todos los metodos DAO para los Consulta
        /// </summary>
        /// <returns></returns>
        public abstract IDaoConsulta ObtenerDaoConsulta();

        /// <summary>
        /// Metodo que obtiene todos los metodos DAO para los Usuario
        /// </summary>
        /// <returns></returns>
        public abstract IDaoUsuario ObtenerDaoUsuario();
    }
}
